dofile "lib/radical.lua"

function tile(s) 
  return const.path.gfx.."game/city/"..s..".jpg"; 
end

function tile2(s) 
  return const.path.gfx.."game/common/"..s..".jpg"; 
end

function dxml(s)
  return const.path.dlg.."1-deadhour/walk/"..s..".xml";
end

walk_player = musplayer.player {
   mus("dad"):inside("start")
  ,sfx("long_static"):inside("radio3")
  ,mus("street_low"):inside("dlg2"):loop()
}

main = engine.main {
   start        = chain_ {
                     episode_("1-walk")
                    ,musplayer_("walk_player")
                    ,walk_("start")
                  }
  ,finish       = gamefile_("1-deadhour/med.lua")
}

start = pause {
   time         = 2000
  ,next         = "title1"
}

title1 = chapter(1, "Мертвый час", "radio1")

title2 = pause {
   time         = 1
  ,fading       = 30
  ,next         = "radio1"
}

radio1 = cutscene {
   fading       = 60
  ,tile         = { tile "cityview", 0, 0 }
  ,bounds       = { 40, 440, 870}
  ,dsc          = [[-- Для тех, кто только что к нам присоединился, сообщаем -- день сегодня обещает быть холодным, температура даже в центре города
                    не будет подниматься выше 15 градусов. К тому же во второй половине дня возможны переменные осадки. Ну и как вы сами можете заметить,
                    выглянув в окно, все небо затянуто облаками -- да так, что солнце едва видно... Ну что я могу сказать, видимо, лето завершилось, не
                    успев начаться.]]
  ,next         = "radio2"
}

radio2 = cutscene {
   tile         = { tile "cityview", 0, 0 }
  ,bounds       = { 40, 440, 870}
  ,dsc          = [[-- Напоминаем вам, что сегодня мы работаем по особой программе, а завтра, седьмого июня, мы совсем не выйдем в эфир. Так что
                    не удивляйтесь, если вы услышите тишину на своей любимой радио-волне. Завтра исполняется ровно тридцать лет со дня аварии, и в эфир не
                    выйдут все развлекательные передачи. Так что, если подумать, то и погода сейчас даже немного кстати. Но не будем о грустном. Впереди еще
                    целый день, и мы заготовили для вас много интересного. ]]
  ,next         = "radio3"
}

radio3 = cutscene {
   tile         = { tile "cityview", 0, 0 }
  ,bounds       = { 40, 440, 870}
  ,dsc          = [[-- Да, чуть не забыл. Нам поступало много жалоб по поводу того, что наша радио-станция во многих районах города ловится с сильными помехами. 
                    Действительно такая проблема есть, причем не только у нас. Какие-то атмосферные явления... Но в общем самое главное -- начиная с сегодняшнего
                    дня, как бы в тестовом режиме, мы ведем вещания сразу на двух частотах. Так что если вы испытываете проблемы с качеством сигнала на нашей 
                    привычной частоте, переключайтесь сразу на...]]
  ,next         = "radio5"
}

radio5 = pause {
   time         = 500
  ,tile         = tile2 "building"
  ,fading       = 30
  ,next         = "dlg1"
}

dlg1 = dialog {
   tile         = tile2 "building"
  ,bounds       = { 200, 60, 700 }
  ,dlg          = dxml "dlg1"
  ,dsc          = "-- Катя, погоди. Я тебя провожу."
}

dlg2 = dialog {
   tile         = { tile "windows", 100, 100 }
  ,bounds       = { nil, 400, 900 }
  ,dlg          = dxml "dlg2"
  ,dsc          = [[-- Ты приходи, обязательно. Я бы вообще на твоем месте на самую первую парту сел, чтобы он тебя хоть заметил. А то у него, говоря, любимый первый 
                    вопрос -- а почему это я вас не видел на своих лекциях?]]
}

dlg3_trans = pause {
   time         = 1500
  ,fading       = 30
  ,next         = "dlg3"
}

dlg3 = dialog {
   tile         = tile "brickwall"
  ,bounds       = { 240, nil, 700 }
  ,dlg          = dxml "dlg3"
}

dlg4 = dialog {
   fps          = 20
  ,step         = 10
  ,tile         = { tile "bridge", 0, 100 }
  ,_frames      = 0
  ,dlg          = dxml "dlg4"
  ,dsc          = "-- Вот мы и почти пришли!"
  ,bounds       = { nil, 440, 900 }
  ,exit         = function(s)
                    sprite.free(s.traincache);
                  end
  ,ontimer      = function(s,x,y)
                    s._frames  = s._frames + 1;
                    if s._frames == 200 then
                      play_sound("trainpassing");
                    elseif s._frames >= 260 then
                      if s.traincache == nil then
                        s.traincache = sprite.load(tile "train_move");
                      end
                      if s._trainx == nil then
                        s._trainx = -810;
                      end
                      if s._trainx == 960+810 then
                        s._trainx = nil;
                        s._frames = -2000;
                        return;
                      end
                      
                      drawing.clean(s.pic, s._trainx-s.step, 20, s.step, 60);
                      sprite.copy(s.traincache, s.pic, s._trainx, 20);
                      s._trainx = s._trainx + s.step;
                    end
                  end
}